package com.xquant.marketdata.curvestrip.mapper;

import com.xquant.marketdata.curvestrip.domain.DivIrCurveDTO;
import com.xquant.marketdata.curvestrip.domain.DivIrCurveStripDTO;
import com.xquant.marketdata.curvestrip.domain.IrCurveSetDTO;
import com.xquant.marketdata.curvestrip.entity.TdivyieldRatesDTO;
import org.apache.ibatis.annotations.Mapper;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author xpp
 * @version 1.0
 * @date 2020/9/22 13:33
 */
@Mapper
public interface DivIrCurveStripMapper {
    List<DivIrCurveDTO> queryDivIrCurveByPage(Map map);

    List<Map> queryDivIrCurveRefSetByPage(Map map);

    List<Map> queryDivIrCurveRatesByPage(Map map);

    Map queryDivIrCurve(Map map);

    List<Map> queryFutureClose(Map map);


    void updateDivIrCurve(Map map);

    void insertDivIrCurve(Map map);

    void deleteDivIrCurve(Map map);

    void updateDivIrCurveRefSet(Map map);

    void updateDivIrCurveRates(Map map);

    void insertDivIrCurveRefSetByDate(Map map);

    void insertDivIrCurveRefSet(Map map);

    void insertDivIrCurveRates(Map map);

    void deleteDivIrCurveRefSet(Map map);

    void deleteDivIrCurveRefSetByDate(Map map);

    void deleteDivIrCurveRates(Map map);

    void deleteAllDivIrCurveRefSet(Map map);

    void filterDivIrCurveRefSet(Map map);

    List<Map> queryFilterDivIrCurveRefSetByPage(Map map);

    int queryDivIrCurveRefSetByDate(Map map);

    void deleteDivIrCurveList(HashMap<String, Object> hashMap);

    void updateDivIrCurveByBegDate(HashMap<String, String> hashMap);

    String getNextDay(HashMap<String, Object> hashMap2);

    void insertDivIrCurveList(List<TdivyieldRatesDTO> subList);

    Map getLastDay(Map map);

    void updateLastDay(Map map);

    Map getNextDayByBegDate(Map map);

    Map getDivCurveByCode(String divCode);
    String getDeptAncestors(String deptId);
    void batchInsertCurveUser(List<DivIrCurveDTO>  list);

    void batchInsertCurveDept(Map map);

    void updateUserPermDivCurve(Map<String, Object> params);

    void updateDeptPermDivCurve(Map<String, Object> params);
    int removeUserPermCurve(Map map);

    int removeDeptPermCurve(Map map);

    void removeUserCurveByDivCode(Map param);

    void removeDeptCurveByDivCode(Map param);

    String queryDivCurveFlagByUserId(String userId);

    List<Map> queryDivCurveDept(Map<String, Object> param);

    void saveDivCurveDept(Map<String, Object> param);

    void updateDivCurveDept(Map<String, Object> param);

    void deleteDivCurveDept(Map<String, Object> param);

    void removeDeptPermCurveByDeptId(Map param);

    List<Map> queryDivCurveUserPerm(Map<String, Object> param);




    void removeUserPermDivCurveByUserId(Map param);


    void saveDivCurveUser(Map<String, Object> param);

    void updateDivCurveUser(Map<String, Object> param);

    void deleteDivCurveUser(Map<String, Object> param);
    List<DivIrCurveDTO> checkDivIrCurve(Map<String, Object> map);

    void deleteAllDivIrCurveRates(Map map);
}
